딕셔너리 관련 함수
✒️ 2025-05-19 10:30 내용 수정
Do it! 점프 투 파이썬(2017년 발행) 내용을 정리
keys
keys()함수는 대상 딕셔너리의 키(key)만 모아dict_keys객체를 만든다.- Python 2.7 버전까지는 리스트를 반환했으나, 리스트 반환을 위한 메모리가 낭비되어 이를 줄이기 위해 3.0 버전부턴
dict_keys객체를 반환하도록 변경되었다고 한다.
- Python 2.7 버전까지는 리스트를 반환했으나, 리스트 반환을 위한 메모리가 낭비되어 이를 줄이기 위해 3.0 버전부턴
>>> a = {"name":"kim", "score":100, 1:False}
>>> a.keys()
dict_keys(['name', 'score', 1])
- 리턴값으로 리스트가 필요하다면
list(a.keys())를 사용한다.
>>> list(a.keys())
['name', 'score', 1]
values
values()함수는keys()함수처럼 대상 딕셔너리의 값(value)만 모아dict_values객체를 만든다.
>>> a = {"name":"kim", "score":100, 1:False}
>>> a.values()
dict_values(['kim', 100, False])
>>> list(a.values())
['kim', 100, False]
items
items()함수는 키(key)와 값(value)의 쌍을 튜플로 묶은 값을dict_items객체로 반환한다.
>>> a = {"name":"kim", "score":100, 1:False}
>>> a.items()
dict_items([('name', 'kim'), ('score', 100), (1, False)])
clear
clear()함수는 딕셔너리 안의 모든 요소를 제거한다.
>>> a.clear()
>>> a
{}
get
get(key)함수는 매개변수로 받은 키(key)와 대응되는 값(value)를 반환한다.a.get('keyname')은a['keyname']과 동일한 결과를 반환한다.- 하지만
a.get('nokey')함수는 딕셔너리에 없는 key에 접근하려 하면None을 반환하고,a['nokey']는 에러가 발생한다.
>>> a = {'name':'kim', 'score':100, 'phone':"010-0000-0000"}
>>> a.get('name')
'kim'
>>> a['name']
'kim'
>>> a.get('age')
>>> print(a.get('age'))
None
>>> a['age']
Traceback (most recent call last):
File "<python-input-17>", line 1, in <module>
a['age']
~^^^^^^^
KeyError: 'age'
- 딕셔너리에서 찾으려는 key가 없는 경우, 미리 지정해둔 디폴트 값을 가져오게 하는
get('keyname', '디폴트 값')을 사용할 수 있다.
>>> a = {'name':'kim', 'score':100, 'phone':"010-0000-0000"}
>>> a.get('age', 30)
30
in
in연산자로 특정 key가 딕셔너리 안에 존재하는지 확인할 수 있다.- key가 딕셔너리 안에 존재하면 True를, 없으면 False를 반환한다.
>>> a = {'name':'kim', 'score':100, 'phone':"010-0000-0000"}
>>> 'name' in a
True
>>> 'age' in a
False